﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Application.GatewayApp.Dto.Output
{
    /// <summary>
    /// 订单查询输出
    /// </summary>
    public class OrderQueryOutput
    {
        /// <summary>
        /// 
        /// </summary>
        public OrderQueryOutput()
        {
            this.PayChannels = new List<OrderPayChannelOutput>();
        }

        /// <summary>
        /// 账本Id
        /// </summary>
        public long BookId { get; set; }

        /// <summary>
        /// 申请Id
        /// </summary>
        public string ApplyId { get; set; }

        /// <summary>
        /// 订单号
        /// </summary>
        public string OrderNo { get; set; }

        /// <summary>
        /// 订单时间
        /// </summary>
        public DateTime OrderTime { get; set; }

        /// <summary>
        /// 订单金额
        /// </summary>
        public decimal OrderMoney { get; set; }

        /// <summary>
        /// 会员编号
        /// </summary>
        public string MemberNo { get; set; }

        /// <summary>
        /// 商品主题
        /// </summary>
        public string Subject { get; set; }

        /// <summary>
        /// 商品详情
        /// </summary>
        public string Body { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 首个支付通道Id
        /// </summary>
        public string FirstChannelId { get; set; }

        /// <summary>
        /// 首个支付通道名称
        /// </summary>
        public string FirstChannelName { get; set; }

        /// <summary>
        /// 首次付款时间
        /// </summary>
        public DateTime FirstPayTime { get; set; }

        /// <summary>
        /// 付款次数
        /// </summary>
        public int PayCount { get; set; }

        /// <summary>
        /// 支付费用
        /// </summary>
        public decimal PayFee { get; set; }

        /// <summary>
        /// 支付金额
        /// </summary>
        public decimal PayMoney { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal RefundMoney { get; set; }

        /// <summary>
        /// 退款费用
        /// </summary>
        public decimal RefundFee { get; set; }

        /// <summary>
        /// 账本时间
        /// </summary>
        public DateTime BookTime { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        public int TradeState { get; set; }

        /// <summary>
        /// 交易余额
        /// </summary>
        public decimal TradeBalanceMoney { get; set; }

        /// <summary>
        /// 账本余额
        /// </summary>
        public decimal BookBalanceMoney { get; set; }

        /// <summary>
        /// 付款通道集合
        /// </summary>
        public List<OrderPayChannelOutput> PayChannels { get; set; }
    }
}
